package cn.wolfcode.wolf2w.redis.util;


import cn.wolfcode.wolf2w.util.Consts;
import lombok.Getter;
import lombok.Setter;

/**
 * redis操作key统一管理工具
 * 约定：一个key对应一枚举实例
 * 1. key的维护
 * 2. key的有效维护
 */
//@Setter
@Getter
public enum RedisKeys {
    // 用户点赞的key实例
    STRATEGY_THUMB("strategy_thumb", -1L),
    // 用户收藏的攻略集合的key实例
    USER_STRATEGY_FAVOR("user_strategy_favor", -1L),
    // 阅读数的key实例
    STRATEGY_STATIC_VO("strategy_static_vo", -1L),
    // 短信验证码的key实例
    VERIFY_CODE("verify_code", Consts.VERIFY_CODE_VAI_TIME * 60L),
    // 用户登录token的key实例
    LOGIN_TOKEN("login_token", Consts.USER_INFO_TOKEN_VAI_TIME * 60L);
    private String prefix;//key的前缀
    private Long time;//约定的时间单位为秒

    RedisKeys(String prefix, Long time) {
        this.prefix = prefix;
        this.time = time;
    }
    public String join(String ... values){
        StringBuilder sb = new StringBuilder(50);
        // 拼接
        sb.append(this.prefix);
        for (String value : values) {
            sb.append(":").append(value);
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        System.out.println(RedisKeys.VERIFY_CODE.join("12300000001"+ "c" + "q"));
    }
}
